import copy

'''浅拷贝'''
a_list = [1,2,[5,10]]
b_list = a_list[:]

b_list[0] = 0
b_list[1] = 0
b_list[2][0] = 0
b_list[2][1] = 0

'''
按理说 b_list 是 a_list的副本 修改b_list 的值不会对 a_list的值造成改变
但此时 a_list  = [1, 2, [0, 0]]
因此 对b_list的更改 如果涉及二级列表的话 则会影响 a_list
浅拷贝仅对顶层数据生成新的副本
'''
# print(a_list)   [1, 2, [0, 0]]
# print(b_list)   [0, 0, [0, 0]]


'''深拷贝'''
c_list = copy.deepcopy(a_list)
c_list[0] = 0
c_list[1] = 0
c_list[2][0] = 0
c_list[2][1] = 0

'''
此时每个元素都有自己单独的副本，进行深拷贝时，复制的深度会扩展到各个层级，对副本的更改不会对原列表产生影响
'''

# print(a_list)   [1, 2, [5, 10]]
# print(c_list)   [0, 0, [0, 0]]
